package com.jichangxiu.generator.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jichangxiu.generator.entity.dto.add.AddGenCategory;
import com.jichangxiu.generator.entity.dto.edit.EditGenCategory;
import com.jichangxiu.generator.entity.dto.query.QueryGenCategory;
import com.jichangxiu.generator.entity.po.GenCategory;
import com.jichangxiu.generator.entity.vo.GenCategoryVo;
import com.jichangxiu.framework.service.BaseService;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * GenCategoryService:
 *
 * @author JiChangXiu
 * @create 2024-06-30 13:30:59
 */
public interface GenCategoryService extends BaseService<GenCategory, GenCategoryVo> {

    /**
     * 新增生成分类
     *
     * @param addGenCategory 新增生成分类视图对象
     * @return 是否成功
     */
    public Boolean add(AddGenCategory addGenCategory);

    /**
     * 单（多）选删除生成分类
     *
     * @param idList 生成分类主键列表
     * @return 是否成功
     */
    public Boolean del(List<String> idList);

    /**
     * 修改生成分类
     *
     * @param editGenCategory 修改生成分类视图对象
     * @return 是否成功
     */
    public Boolean edit(EditGenCategory editGenCategory);

    /**
     * 根据主键查询生成分类
     *
     * @param id       生成分类主键
     * @param isExtend 是否扩展
     * @return 生成分类详情
     */
    public GenCategoryVo info(@NotBlank(message = "主键不能为空") String id, Boolean isExtend);

    /**
     * （可分页）查询生成分类列表
     *
     * @param queryGenCategory 查询视图对象
     * @return （分页）生成分类列表
     */
    public Page<GenCategoryVo> lists(QueryGenCategory queryGenCategory);

}